package com.mingda.weathermagiccenter.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Data;

/**
 * 天气预报表
 * @TableName ws_station_fc_data_cur
 */
@TableName(value ="ws_station_fc_data_cur")
@Data
public class WsStationFcDataCur implements Serializable {
    /**
     * 站点ID
     */
    @TableId(value = "stationkey")
    private String stationkey;

    /**
     * 时间取整点数据
     */
    @TableField(value = "timebase")
    private LocalDateTime timebase;

    /**
     * 
     */
    @TableField(value = "validtime")
    private Integer validtime;

    /**
     * 最大预报时效
     */
    @TableField(value = "validtime_max")
    private Integer validtimeMax;

    /**
     * 
     */
    @TableField(value = "temp")
    private Float temp;

    /**
     * 气温
     */
    @TableField(value = "pres")
    private Float pres;

    /**
     * 湿度
     */
    @TableField(value = "humi")
    private Float humi;

    /**
     * 降雨量
     */
    @TableField(value = "prec")
    private Float prec;

    /**
     * 天气现象
     */
    @TableField(value = "wep")
    private Integer wep;

    /**
     * 风向
     */
    @TableField(value = "win_dir")
    private Integer winDir;

    /**
     * 风力
     */
    @TableField(value = "win_vel")
    private Float winVel;

    /**
     * 
     */
    @TableField(value = "cov_low")
    private Float covLow;

    /**
     * 
     */
    @TableField(value = "cov_all")
    private Float covAll;

    /**
     * 天气现象文本
     */
    @TableField(value = "wep_txt")
    private String wepTxt;

    /**
     * YYYYMM表分区
     */
    @TableField(value = "month")
    private String month;

    /**
     * 预报时间
     */
    @TableField(value = "fctime")
    private LocalDateTime fctime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        WsStationFcDataCur other = (WsStationFcDataCur) that;
        return (this.getStationkey() == null ? other.getStationkey() == null : this.getStationkey().equals(other.getStationkey()))
            && (this.getTimebase() == null ? other.getTimebase() == null : this.getTimebase().equals(other.getTimebase()))
            && (this.getValidtime() == null ? other.getValidtime() == null : this.getValidtime().equals(other.getValidtime()))
            && (this.getValidtimeMax() == null ? other.getValidtimeMax() == null : this.getValidtimeMax().equals(other.getValidtimeMax()))
            && (this.getTemp() == null ? other.getTemp() == null : this.getTemp().equals(other.getTemp()))
            && (this.getPres() == null ? other.getPres() == null : this.getPres().equals(other.getPres()))
            && (this.getHumi() == null ? other.getHumi() == null : this.getHumi().equals(other.getHumi()))
            && (this.getPrec() == null ? other.getPrec() == null : this.getPrec().equals(other.getPrec()))
            && (this.getWep() == null ? other.getWep() == null : this.getWep().equals(other.getWep()))
            && (this.getWinDir() == null ? other.getWinDir() == null : this.getWinDir().equals(other.getWinDir()))
            && (this.getWinVel() == null ? other.getWinVel() == null : this.getWinVel().equals(other.getWinVel()))
            && (this.getCovLow() == null ? other.getCovLow() == null : this.getCovLow().equals(other.getCovLow()))
            && (this.getCovAll() == null ? other.getCovAll() == null : this.getCovAll().equals(other.getCovAll()))
            && (this.getWepTxt() == null ? other.getWepTxt() == null : this.getWepTxt().equals(other.getWepTxt()))
            && (this.getMonth() == null ? other.getMonth() == null : this.getMonth().equals(other.getMonth()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getStationkey() == null) ? 0 : getStationkey().hashCode());
        result = prime * result + ((getTimebase() == null) ? 0 : getTimebase().hashCode());
        result = prime * result + ((getValidtime() == null) ? 0 : getValidtime().hashCode());
        result = prime * result + ((getValidtimeMax() == null) ? 0 : getValidtimeMax().hashCode());
        result = prime * result + ((getTemp() == null) ? 0 : getTemp().hashCode());
        result = prime * result + ((getPres() == null) ? 0 : getPres().hashCode());
        result = prime * result + ((getHumi() == null) ? 0 : getHumi().hashCode());
        result = prime * result + ((getPrec() == null) ? 0 : getPrec().hashCode());
        result = prime * result + ((getWep() == null) ? 0 : getWep().hashCode());
        result = prime * result + ((getWinDir() == null) ? 0 : getWinDir().hashCode());
        result = prime * result + ((getWinVel() == null) ? 0 : getWinVel().hashCode());
        result = prime * result + ((getCovLow() == null) ? 0 : getCovLow().hashCode());
        result = prime * result + ((getCovAll() == null) ? 0 : getCovAll().hashCode());
        result = prime * result + ((getWepTxt() == null) ? 0 : getWepTxt().hashCode());
        result = prime * result + ((getMonth() == null) ? 0 : getMonth().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", stationkey=").append(stationkey);
        sb.append(", timebase=").append(timebase);
        sb.append(", validtime=").append(validtime);
        sb.append(", validtimeMax=").append(validtimeMax);
        sb.append(", temp=").append(temp);
        sb.append(", pres=").append(pres);
        sb.append(", humi=").append(humi);
        sb.append(", prec=").append(prec);
        sb.append(", wep=").append(wep);
        sb.append(", winDir=").append(winDir);
        sb.append(", winVel=").append(winVel);
        sb.append(", covLow=").append(covLow);
        sb.append(", covAll=").append(covAll);
        sb.append(", wepTxt=").append(wepTxt);
        sb.append(", month=").append(month);
        sb.append(", fctime=").append(fctime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}